题目描述:实现一个算法确定字符串中的字符是否均唯一出现
样例:给出"abc",返回 true;给出"aab",返回 false
挑战 :如果不使用额外的存储空间,你的算法该如何改变?
很简单的题目。最简单的方法是遍历数组,然后使用一个数据结构(列表,集合都可以)保存遍历到的元素,将新遍历到的元素与这个结构里面存储的元素相比较,若发现重复了,则返回False,若一直没有重复的,返回True。
但是若不使用额外空间呢,其实也有办法,就是从头至尾遍历数组,每读取一个元素(设为a),就在它之后的元素起直到数组结尾部分中寻找a,若找到了,则必然有重复,遍历结束都没有重复,则证明没有重复。
代码如下:
class Solution:
# @param s: a string
# @return: a boolean
def isUnique(self, str):
n = len(str)
i = 0
while i != n:
if str[i] in str[i + 1:]:
return False
i += 1
return True
# write your code here